package leetcode7;

public class test20 {
    /*
    * 160. 相交链表**/
    //哈希表
//    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
//        Set<ListNode> set = new HashSet<>();
//        ListNode temp = headA;
//        while(temp != null){
//            set.add(temp);
//            temp = temp.next;
//        }
//        temp = headB;
//        while(temp != null){
//            if(set.contains(temp)){
//                return temp;
//            }
//            temp = temp.next;
//        }
//        return null;
//    }
    //双指针
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        if(headA == null || headB == null){
            return null;
        }
        ListNode pa = headA,pb = headB;
        while(pa != pb){
            pa = pa == null ? headB : pa.next;
            pb = pb == null ? headA : pb.next;
        }
        return pb;//return pa;
    }
}
